聚合函数 您所在的位置:网站首页 sql 聚合 聚合函数

聚合函数

2023-04-24 14:17| 来源: 网络整理| 查看: 265

hll_add_agg(hll_hashval)

描述:把哈希后的数据按照分组放到hll中。

返回值类型:hll

示例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 --准备数据 CREATE TABLE t_id(id int); INSERT INTO t_id VALUES(generate_series(1,500)); CREATE TABLE t_data(a int, c text); INSERT INTO t_data SELECT mod(id,2), id FROM t_id; --创建表并指定列为hll CREATE TABLE t_a_c_hll(a int, c hll); --根据a列group by对数据分组,把各组数据加到hll中 INSERT INTO t_a_c_hll SELECT a, hll_add_agg(hll_hash_text(c)) FROM t_data GROUP BY a; --得到每组数据中hll的Distinct值 SELECT a, #c as cardinality FROM t_a_c_hll order by a; a | cardinality ---+------------------ 0 | 250.741759091658 1 | 250.741759091658 (2 rows) hll_add_agg(hll_hashval, int32 log2m)

描述:把哈希后的数据按照分组放到hll中。 并指定参数log2m,取值范围是10到16。

返回值类型:hll

示例:

1 2 3 4 5 SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), 10)) FROM t_data; hll_cardinality ------------------ 503.932348927339 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 regwidth)

描述:把哈希后的数据按照分组放到hll中。依次制定参数log2m, regwidth。 regwidth取值范围是1到5。

返回值类型:hll

示例:

1 2 3 4 5 SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 1)) FROM t_data; hll_cardinality ------------------ 496.628982624022 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 regwidth, int64 expthresh)

描述:把哈希后的数据按照分组放到hll中, 依次指定参数log2m、regwidth、expthresh。expthresh的取值范围是-1-7之间的整数,该参数可以用来设置从Explicit模式到Sparse模式的阈值大小。-1表示自动模式,0表示跳过Explicit模式,取1-7表示在基数到达 2expthresh时切换模式。

返回值类型:hll

示例:

1 2 3 4 5 SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 1, 4)) FROM t_data; hll_cardinality ------------------ 496.628982624022 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 regwidth, int64 expthresh, int32 sparseon)

描述:把哈希后的数据按照分组放到hll中, 依次制定参数log2m、regwidth、expthresh、sparseon,sparseon取值范围是0或者1。

返回值类型:hll

示例:

1 2 3 4 5 SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 1, 4, 0)) FROM t_data; hll_cardinality ------------------ 496.628982624022 (1 row) hll_union_agg(hll)

描述:将多个hll类型数据union成一个hll。

返回值类型:hll

示例:

1 2 3 4 5 6 --将各组中的hll数据union成一个hll,并计算distinct值。 SELECT #hll_union_agg(c) as cardinality FROM t_a_c_hll; cardinality ------------------ 496.628982624022 (1 row)

注意:当两个或者多个hll数据结构做union的时候,必须要保证其中每一个hll里面的精度参数一样,否则将不可以进行union。同样的约束也适用于函数hll_union(hll,hll)。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有